package com.cao;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;



public class mainloop {
	 @SuppressWarnings("resource")
	public static void main( String[] args ){
	        boolean loop=true;//来使主循环发生
	        @SuppressWarnings("resource")
			Scanner sc=new Scanner(System.in);//定义输入事件
	        System.out.println("----------欢迎使用本系统----------");//登录界面略去
	        System.out.println("------------使用说明------------");//使用信息的一些说明
	        System.out.println("---------1.录入一条信息----------"+'\n'+
	        				   "---------2.修改一条信息----------"+'\n'+
	        				   "---------3.查询一条信息----------"+'\n'+
	        				   "---------4.删除一条信息----------"+'\n'+
	        				   "---------5.退出本通讯录----------");
	        
	        while (loop){
	        	System.out.println("请输入您需要进行的操作：");//读取需要进行的操作并在下面进行执行
	        	int a=sc.nextInt();
	        	sc.nextLine();//读取sc.nextint剩下的换行符但不进行任何处理
	        	switch (a) {
				case 1:
					System.out.println("输入此联系人的信息（姓名，性别，年龄，联系电话，地址，电子邮件）：");
					String lx1=sc.nextLine();
					//System.out.println(lx1);
					lianxiren lxr1=new lianxiren();
					lxr1=Creatlxr(lx1,1);
					lx1=lxr1.toString();
					//System.out.println(lxr1.toString());
					String tempString = null;  
			        int line = 0;  
			        String[]stra=new String[100];
					File file = new File("F:\\coding\\java\\cxm\\person.txt");//打开存储的文件  
			        BufferedReader reader = null;  
			        try {  
			            reader = new BufferedReader(new FileReader(file));  
			            while ((tempString = reader.readLine()) != null) {  // 一次读入一行，直到读入null为文件结束  
			                stra[line]=tempString;//将原有的数据进行存储
			                line++;  
			            }  
			            reader.close();  
			        } catch (IOException e) {  
			            e.printStackTrace();  
			        } finally {  
			            if (reader != null) {  
			                try {  
			                    reader.close();  
			                } catch (IOException e1) {  
			                }  
			            }  
			        }
			        
			        stra[line]=lx1;//加上录入的数据
			        
			        FileOutputStream out = null; 
			        try {   
			            out = new FileOutputStream(new File("F:\\coding\\java\\cxm\\person.txt"));   
			          //  long begin = System.currentTimeMillis();   
			            for (int i = 0; i <= line; i++) {   
			            	stra[i]=stra[i]+'\n';
			                out.write(stra[i].getBytes());   
			            }}catch (Exception e) {   
				            e.printStackTrace();   
				        }      
			        break;
				case 2:
					System.out.println("输入要修改的联系人的姓名：");
					String lx2=sc.nextLine();
					//System.out.println(lx1);
					lianxiren lxr2=new lianxiren();
					//lx4=lxr4.getName();
					//System.out.println(lxr1.toString());
					String tempString2 = null;  
					File file2 = new File("F:\\coding\\java\\cxm\\person.txt");//打开存储的文件  
			        BufferedReader reader2 = null;  
			        int line2 = 0;  
			        String[]stra2=new String[100];
			        try {  
			            reader = new BufferedReader(new FileReader(file2));  
			            while ((tempString2 = reader.readLine()) != null) {  // 一次读入一行，直到读入null为文件结束  
			            	lxr2=Creatlxr(tempString2);
			            	if(lxr2.getName().equals(lx2)){//判断本词条是不是要修改的，如果是就对其进行修改
			            		  System.out.println("请重新输入此联系人的信息：");
			            		  String lx2tmp=sc.nextLine();
			            		  lxr2=Creatlxr(lx2tmp, 1);
			            		  stra2[line2]=lxr2.toString();
			            		  line2++;
			            	}else{
			            		stra2[line2]=tempString2;
			            		line2++;
			            	}
			            }  
			            reader.close();  
			        } catch (IOException e) {  
			            e.printStackTrace();  
			        } finally {  
			            if (reader2 != null) {  
			                try {  
			                    reader2.close();  
			                } catch (IOException e1) {  
			                }  
			            }  
			        }
			        FileOutputStream out2 = null; 
			        try {   
			            out2 = new FileOutputStream(new File("F:\\coding\\java\\cxm\\person.txt"));   
			          //  long begin = System.currentTimeMillis();   
			            for (int i = 0; i < line2; i++) {   
			            	stra2[i]=stra2[i]+'\n';
			                out2.write(stra2[i].getBytes());   
			            }}catch (Exception e) {   
				            e.printStackTrace();   
				        }      
					break;
				case 3:
					System.out.println("输入要查询的联系人的姓名：");
					String lx3=sc.nextLine();
					//System.out.println(lx1);
					lianxiren lxr3=new lianxiren();
					//lx4=lxr4.getName();
					//System.out.println(lxr1.toString());
					String tempString3 = null;  
					File file3 = new File("F:\\coding\\java\\cxm\\person.txt");//打开存储的文件  
			        BufferedReader reader3 = null;  
			        try {  
			            reader = new BufferedReader(new FileReader(file3));  
			            while ((tempString3 = reader.readLine()) != null) {  // 一次读入一行，直到读入null为文件结束  
			            	lxr3=Creatlxr(tempString3);
			            	if(lxr3.getName().equals(lx3)){//判断本词条是不是要查询的，如果是就将其输出
			            		  System.out.println(lxr3.toString());
			            	}
			            }  
			            reader.close();  
			        } catch (IOException e) {  
			            e.printStackTrace();  
			        } finally {  
			            if (reader3 != null) {  
			                try {  
			                    reader3.close();  
			                } catch (IOException e1) {  
			                }  
			            }  
			        }
					break;
				case 4:
					System.out.println("输入要删除的联系人的姓名：");
					String lx4=sc.nextLine();
					//System.out.println(lx1);
					lianxiren lxr4=new lianxiren();
					//lx4=lxr4.getName();
					//System.out.println(lxr1.toString());
					String tempString4 = null;  
			        int line4 = 0;  
			        String[]stra4=new String[100];
					File file4 = new File("F:\\coding\\java\\cxm\\person.txt");//打开存储的文件  
			        BufferedReader reader4 = null;  
			        try {  
			            reader = new BufferedReader(new FileReader(file4));  
			            while ((tempString4 = reader.readLine()) != null) {  // 一次读入一行，直到读入null为文件结束  
			            	lxr4=Creatlxr(tempString4);
			            	if(lxr4.getName().equals(lx4)){//判断本词条是不是要删除的，如果不是就将其加入要写入文件的缓存中去
			            		System.out.println("已删去"+lx4);
			            	} else{
			            		stra4[line4]=tempString4;//将没有删除的数据进行存储
				                line4++;  
			            	}
			            }  
			            reader.close();  
			        } catch (IOException e) {  
			            e.printStackTrace();  
			        } finally {  
			            if (reader4 != null) {  
			                try {  
			                    reader4.close();  
			                } catch (IOException e1) {  
			                }  
			            }  
			        }
			        FileOutputStream out4 = null; 
			        try {   
			            out4 = new FileOutputStream(new File("F:\\coding\\java\\cxm\\person.txt"));   
			          //  long begin = System.currentTimeMillis();   
			            for (int i = 0; i < line4; i++) {   
			            	stra4[i]=stra4[i]+'\n';
			                out4.write(stra4[i].getBytes());   
			            }}catch (Exception e) {   
				            e.printStackTrace();   
				        }      
					break;
				case 5:
					System.out.println("感谢使用本程序");
					System.exit(0);//结束本程序，退出通讯录管理系统
					break;
				default:
					break;
				}
	        }
	    }

	public static lianxiren Creatlxr(String lx1,int bl) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		lianxiren stlxr=new lianxiren();
		int i=0;
		String[] str=lx1.split(" ");
		i=str.length;
		//System.out.println(i);
		while(i!=6){
			System.out.println("您输入的格式有误，请重新输入：");//判断用户的输入信息的格式是否有误
			lx1=sc.nextLine();
			str=lx1.split(" ");
			i=str.length;
		}
		//设定联系人的值
		stlxr.setName(str[0]);
		stlxr.setSex(str[1]);
		stlxr.setAge(str[2]);
		stlxr.setPhone(str[3]);
		stlxr.setAddress(str[4]);
		stlxr.setEmail(str[5]);
		
		return stlxr;
	}
	
	public static lianxiren Creatlxr(String lx1) {
		// TODO Auto-generated method stub
		Scanner sc=new Scanner(System.in);
		lianxiren stlxr=new lianxiren();
		String[] str=lx1.split(" ");
		//System.out.println(i);
		//设定联系人的值
		stlxr.setName(str[0]);
		stlxr.setSex(str[1]);
		stlxr.setAge(str[2]);
		stlxr.setPhone(str[3]);
		stlxr.setAddress(str[4]);
		stlxr.setEmail(str[5]);
		
		return stlxr;
	}
}
